import sqlite3
import csv
import sys
import numpy as np
import matplotlib.pyplot as plt

# Lista de distritos

distritos = ["Aveiro", "Braga", "Braganca", "VilaReal", "Viana do Castelo", "Porto", 
			 "Guarda", "Castelo Branco", "Viseu", "Coimbra", " Portalegre",
			"Evora", " Setubal", "Lisboa", "Leiria", "Santarem", "Beja", "Faro", "Madeira", "Acores" ]
			
alunos = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
			
# connetion sqlite of the base dados nomeBd

connection = sqlite3.connect("nomeBd.db")


c = connection.cursor()

# query que seleciona numero de alunos por intituicao e distrito

c.execute(''' select nomeInstituicao, colocados as total from dados where nomeInstituicao  !="" group by nomeInstituicao order by total DESC LIMIT 30 ''')

	
# save the results
			
connection.commit()

# percorre todos as colunas da base dados

rows = c.fetchall()

# fecha a conexo

connection.close()

	
# criacao do ficheiro outputcsv#

"""
filename = "output.csv"

spamWriter = csv.writer(open(filename, 'w'), delimiter=',', quotechar='\x22', quoting=csv.QUOTE_MINIMAL)

for row in a:
	
	print row
	
	print
	
	instituicao.append(row[0])
	
	alunos.append(row[1])
	
	spamWriter.writerow([row[0].encode('utf-8')] + [row[1]])
"""

# imprime no grafico
	
plt.xlabel('Instituicao')

plt.ylabel('n. Alunos')

plt.title('Numero de ...')


x = 0

#ciclo que percorre todos os distritos

for distrito in distritos:
	
#ciclo que percorre todas as linhas  do distrito

	for row in rows:
		
# se encontrar distrito coloca na posicao zero

		if distrito in row[0]:
			
			 alunos[x] = alunos[x] + int(row[1])
			 
		 x = x + 1

#vai percorrer o distrito desde o primeiro ate ao comprimento 

b = lambda:range(1, len(distritos) + 1)

plt.plot(b(), alunos)

locs, labels = plt.xticks(b(), distritos)

plt.setp(labels, 'rotation', 'vertical')

plt.suptitle("ESTATISTICAS", fontsize=20)

plt.grid(True)

plt.show()
